package my.test.visitor;

/**
 * @Author 许玉康
 * @Date 2019/10/8 9:27
 */
public abstract class Employee {
    public final static int MALE = 0;
    public final static int FEMALE = 1;

    //姓名
    private String name;
    //薪水
    private int salary;
    //性别
    private int sex;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getSalary() {
        return salary;
    }

    public void setSalary(int salary) {
        this.salary = salary;
    }

    public int getSex() {
        return sex;
    }

    public void setSex(int sex) {
        this.sex = sex;
    }

    //打印出员工的信息
    public final void report() {
        String info = "姓名: " + this.name + "\t";
        info = info + "性别: " + (this.sex == FEMALE?"女":"男") + "\t";
        info = info + "薪水: " + this.salary + "\t";
        //获得其他员工信息
        info = info + this.getOtherInfo();
        System.out.println(info);
    }

    //拼装员工的其他信息
    protected  abstract String getOtherInfo();

    //允许一个访问者访问
    public abstract void accept(IVisitor visitor);
}
